#ifndef _AESMANIPULATOR_H
#define	_AESMANIPULATOR_H

#include <string>
#include <iostream>

namespace etu {
namespace common {

class AES {

    std::string data;

public:
    AES(const std::string& data);
    AES(const AES& orig);
    virtual ~AES();

    static std::string encode(unsigned char* buffer, int length);
    static std::string encodeString(const std::string& src);
    static std::string decodeString(const std::string& encoded);
    static void decode(const std::string& encoded, unsigned char* buffer, int& length);
    std::ostream& operator()(std::ostream &out) const;
private:

};

std::ostream& operator<<(std::ostream& out, AES aes);

}
}

#endif	/* _AESMANIPULATOR_H */

